package com.mazaiting.manager.convert;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mazaiting.manager.domain.entity.SysDictItem;
import com.mazaiting.manager.domain.form.DictItemForm;
import com.mazaiting.manager.domain.vo.dict.DictItemPageVO;
import org.mapstruct.Mapper;
import org.mapstruct.MappingConstants;
import org.mapstruct.ReportingPolicy;

/**
 * 字典项转换器
 *
 * @author mazaiting
 * @create_time 2022/9/22 23:55
 */
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface IDictItemConverter {

    /**
     * 实体转VO
     *
     * @param dictItemPage 实体分页数据
     * @return 实体数据
     */
    Page<DictItemPageVO> entity2Page(Page<SysDictItem> dictItemPage);

    /**
     * 实体转 VO
     *
     * @param sysDictItem 实体
     * @return VO
     */
    DictItemPageVO entity2Page(SysDictItem sysDictItem);

    /**
     * 实体转表单数据
     * @param sysDictItem 实体
     * @return 表单数据
     */
    DictItemForm entity2Form(SysDictItem sysDictItem);

    /**
     * 表单转实体数据
     * @param dictItemForm 字典项表单
     * @return 实体
     */
    SysDictItem form2Entity(DictItemForm dictItemForm);
}
